package com.example.demo.controller;

import com.example.demo.model.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@CrossOrigin(origins = "*") // 允许跨域
@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserRepository userRepository;

    // 新增用户（原代码保持不变）
    @PostMapping
    public User addUser(@RequestBody User user) {
        return userRepository.save(user);
    }

    // 查询所有用户（原代码保持不变）
    @GetMapping
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    // 删除用户（原代码保持不变）
    @DeleteMapping("/{id}")
    public String deleteUser(@PathVariable Long id) {
        userRepository.deleteById(id);
        return "删除成功";
    }

    // ========== 新增：修改用户接口 ==========
    @PutMapping("/{id}")
    public User updateUser(@PathVariable Long id, @RequestBody User userDetails) {
        User user = userRepository.findById(id)
                .orElseThrow(() -> new RuntimeException("用户不存在: " + id));

        // 更新字段
        user.setName(userDetails.getName());
        user.setEmail(userDetails.getEmail());

        return userRepository.save(user); // 保存更新
    }

    // ========== 新增：查询单个用户（用于回显编辑表单）==========
    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userRepository.findById(id)
                .orElseThrow(() -> new RuntimeException("用户不存在: " + id));
    }
    // 新增搜索接口
    @GetMapping("/search")
    public List<User> searchUsers(@RequestParam String name) {
        return userRepository.findByNameContaining(name);
    }
}